package com.example.controller;

import com.example.utils.Result;
import com.example.entity.Zongxiang;
import com.example.service.ZongxiangService;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

@RestController
@RequestMapping("/zongxiang")
public class ZongxiangController {

    @Resource
    ZongxiangService zongxiangService;

    // 添加纵向课题
    @PostMapping("/addZ")
    public Result add(@RequestBody Zongxiang zongxiang, HttpSession session) {
        zongxiang.setId((Integer) session.getAttribute("id")); // 从会话中获取ID并设置
        String msg = zongxiangService.add(zongxiang); // 调用服务层添加方法
        if (msg != null) {
            return Result.error(msg); // 返回错误信息
        }
        return Result.success(); // 返回成功信息
    }

    // 根据ID删除纵向课题
    @DeleteMapping("/deleteZ/{id}")
    public Result delete(@PathVariable Integer id) {
        zongxiangService.deleteById(id); // 调用服务层删除方法
        return Result.success(); // 返回成功信息
    }

    // 根据ID获取纵向课题详情
    @GetMapping("/detailZ/{id}")
    public Result detail(@PathVariable Integer id) {
        return Result.success(zongxiangService.getById(id)); // 调用服务层获取方法并返回成功信息
    }

    // 更新纵向课题
    @PutMapping("/updateZ")
    public Result update(@RequestBody Zongxiang zongxiang) {
        zongxiangService.updateById(zongxiang); // 调用服务层更新方法
        return Result.success(); // 返回成功信息
    }

    // 分页查询纵向课题
    @GetMapping("/selectPageZ")
    public Result selectPage(@RequestParam(defaultValue = "1") Integer pageNum,
                             @RequestParam(defaultValue = "10") Integer pageSize,
                             Zongxiang zongxiang,
                             HttpSession session) {
        zongxiang.setId((Integer) session.getAttribute("id")); // 从会话中获取ID并设置
        PageInfo<Zongxiang> pageInfo = zongxiangService.selectPage(pageNum, pageSize, zongxiang); // 调用服务层分页查询方法
        return Result.success(pageInfo); // 返回分页查询结果
    }
}
